package com.hhkj.admin.student.service.biz;

import com.hhkj.admin.course.model.req.CourseReq;
import com.hhkj.admin.student.domain.Student;
import com.hhkj.admin.student.model.dopo.StudentPo;
import com.hhkj.admin.student.model.req.StudentReq;
import com.hhkj.admin.student.model.res.StudentExclRes;
import com.hhkj.admin.student.model.res.StudentRes;
import com.ruoyi.common.base.biz.service.biz.BaseBizService;
import com.ruoyi.common.model.excel.res.ExcelImportRes;
import com.ruoyi.system.domain.dto.StudentDto;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 学员信息BizService接口
 *
 * @author ruoyi
 * @since 2023-06-08
 */
public interface StudentBizService extends BaseBizService<Student, StudentReq, StudentRes> {
    /**
     * 查询学员信息
     *
     * @param studentReq 学员信息
     * @return 学员信息
     */
    StudentRes selectStudentById(StudentReq studentReq);

    /**
     * 查询学员信息列表
     *
     * @param student 学员信息
     * @return 学员信息集合
     */
    List<StudentPo>  selectStudentList(StudentReq student);


    /**
     * 批量删除学员信息
     *
     * @param idList 需要删除的学员信息主键集合
     * @return 结果
     */
    boolean removeStudentByIdList(List<Long> idList);

    /**
     * 获取学员导入模板
     *
     * @return 请求信息
     */
    Workbook getStudentTemp();

    /**
     * 表格导入
     *
     * @param file 文件
     * @return
     */
    ExcelImportRes importExcl(MultipartFile file);

    /**
     * 批量指定企业
     * @param studentVo 传参
     * @return
     */
    boolean batchSetEnt(StudentDto studentVo);

    /**
     * 检查过期的学生，并将其状态改为已过期
     */
    void checkStudentLineDate();

    /**
     * 生成科目的信息二维码
     *
     * @param course   科目信息
     * @param response response
     */
    void createCourseQr(CourseReq course, HttpServletResponse response);
}
